#ifndef SEMANTICNODEBLOCKENTER_H_
#define SEMANTICNODEBLOCKENTER_H_

#include "SemanticNode.h"
#include "LabeledNode.h"
#include <string>
#include <vector>

class SemanticNodeExpression;

class SemanticNodeBlockEnter : public SemanticNode, public LabeledNode {
private:
	SemanticNodeExpression *unitNumberExpression; // int
	SemanticNodeExpression *storageExpression; // Storage
	SemanticNodeExpression *queueExpression; // Queue
	bool unitNumber, queue;

public:
	SemanticNodeBlockEnter(const SyntaxTreeNode *enterNodeParent, SemanticNode *parent);

	bool hasUnitNumber();
	bool hasQueue();

	void setUnitNumber(SemanticNodeExpression *unitNo);
	void setStorage(SemanticNodeExpression *storageSet);
	void setQueue(SemanticNodeExpression *queueSet);

	virtual std::string toDebugString(int tab);
};

#endif /* SEMANTICNODEBLOCKENTER_H_ */